home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / XLisp 2.1e3 / lisp / hanoi.lsp < prev    next >
Lisp/Scheme  |  1993-10-15  |  549b  |  26 lines

  1. ; Good ol towers of hanoi
  2. ;
  3. ; Usage:
  4. ;      (hanoi <n>)
  5. ;          <n> - an integer the number of discs
  6.  
  7. (defun hanoi (n)
  8.   ( transfer 'A 'B 'C n ))
  9.  
  10. (defun print-move (source-peg dest-peg)
  11.   (princ "Move Disk From ")
  12.   (princ source-peg)
  13.   (princ " To ")
  14.   (princ dest-peg)
  15.   (princ "\n")
  16.   nil)
  17.  
  18.  
  19. (defun transfer (source-peg dest-peg temp-peg n)
  20.   (cond ((equal n 1) (print-move source-peg dest-peg))
  21.     (t (transfer source-peg temp-peg dest-peg (- n 1))
  22.        (print-move source-peg dest-peg)
  23.        (transfer temp-peg dest-peg source-peg (- n 1)))))
  24.  
  25.  
  26.